package br.org.isvi.interpretador.portugol.types;

public interface Symbol {
	Kind getKind();
	Object getValue();
	
	/**
	 * verifica se simbolo passado eh igual.
	 * 
	 * @param symb
	 * @return
	 */
	boolean equals(Symbol symb);
	
	/**
	 * verifica se eh maior que simbolo passado.
	 * 
	 * @param symb
	 * @return
	 */
	boolean bigger(Symbol symb);

	/**
	 * verifica se eh maior que simbolo passado.
	 * 
	 * @param symb
	 * @return
	 */
	boolean smaller(Symbol symb);
	
	/**
	 * Indica se existe compatibilidade entre os symbolos passados.
	 *  
	 * @param symb
	 * @return
	 */
	boolean compatible(Symbol symb);
}
